/*
 * 编写一个程序，提示用户输入名和姓，然后以“名,姓”的格式打印出来。
 * */

#include <stdio.h>

int main(){
	char first_name[20];
	char last_name[20];
	printf("请输入你的名：");
	scanf("%s",first_name);
	printf("请输入你的姓：");
	scanf("%s",last_name);
	printf("%s,%s\n",first_name,last_name);
	return 0;
}

/*
 * 为什么对于scanf来说，字符串直接输变量名，其它类型的变量要加& ?
 *
 * 在C语言中，`scanf`函数用于从标准输入（通常是键盘）读取输入，并将其存储到变量中。
 * 当使用`scanf`读取字符串时，对于字符数组（例如`char`数组），数组名会自动转换为指向数组的第一个元素的指针，因此不需要使用`&`运算符。
 * 这是因为数组名本身就是数组第一个元素的地址。
 * 例如，当我们使用`scanf`读取一个字符串时：
 * ```c
 * char name[50];
 * scanf("%s", name);
 * ```
 * 这里的`name`是一个`char`数组，而`%s`格式说明符用于读取字符串。
 * 因为`name`是数组名，它已经表示了数组的地址，所以不需要再使用`&`运算符来获取地址。
 * 但是，对于其他类型的变量，例如整数、浮点数等，`scanf`需要知道变量在内存中的地址，才能将输入的值存储到变量中。
 * 因此，对于这些变量，我们需要使用`&`运算符来获取它们的地址。例如：
 * ```c
 * int age;
 * scanf("%d", &age);
 * ```
 * 这里使用`&`运算符获取了`age`变量的地址，以便`scanf`函数能够将输入的整数值存储到这个地址中。
 * */
